MODBUS 통신 드라이버로 Transfix 장비의 사용

 

MODBUS 프로토콜로 Kelman Ltd. 의 Transfix 장비와 통신을 위해 DLL-MODBUS2 통신 드라이버를 사용한다.

  

1. 읽기 설정

 

<그림 1>은 MODBUS 통신 드라이버를 사용할 때의 통신설정 예이다.

 

             <그림 1> MODBUS 시리얼 통신설정 예

 

<그림 1>의 DEVICE 설정은 연결된 통신포트(COM1), 통신속도( 9600 ), Parity Bit ( 0 ), Data Bit ( 8 ), Stop Bit ( 1 ), 순으로 장비에 설정된 값을 입력한다.

MODBUS 통신 드라이버의 옵션 부 에는 읽은 패킷의 CRC 체크 여부( 1 = 체크 함, 0 = 체크 안함 ), 비트 ON 쓰기 값 ( 기본 = 65280 ), MODBUS IP 프로토콜 사용여부( 1 = IP 프로토콜, 0 = 일반 시리얼 프로토콜 ) , 비트 OFF 쓰기 값 ( 기본 = 0 ) 순으로 콤마( , )로 구분하여 입력한다.

 

참고) MODBUS IP 프로토콜은 Ethernet 등으로 연결된 시스템에서 사용하고 통신형식은 TCP/IP 또는 UDP/IP를 사용한다.

 

 

읽기 설정 방법

 

READ 스테이션 읽을 종류 읽을 시작주소 메모리 저장위치 읽는 개수
READ, 1, 3, 0, 0, 32,
DWORD, 1, 3d, 200, 0, 50,
DWORD, 1, 3d, 300, 50, 50,
DWORD, 1, 3F, 2000, 0, 50,

 

 

1) 스테이션 : ION Meter 의 스테이션 (ID) 번호. ( 0 ~255 )

2) 읽을 종류 : 읽을 데이터 종류를 지정.

3 – WORD 단위의 데이터 읽기,

3D – DWORD 단위의 데이터 읽기 ( LO, HI 데이터 순 ),

3d – DWORD 단위의 데이터 읽기 ( HI, LO 데이터 순 ),

3lD, 3LD – 8 BYTE 단위의 데이터 읽기 ( LO, HI 데이터 순 ),

3ld, 3Ld – 8 BYTE 단위의 데이터 읽기 ( HI, LO 데이터 순 ),

3M – HI WORD x 10000 + LO WORD 형식의 DWORD 데이터 읽기 ( LO, HI 데이터 순 ),

3m – HI WORD x 10000 + LO WORD 형식의 DWORD 데이터 읽기 ( HI, LO 데이터 순 ),

3lM, 3LM – HI WORD x 10000 + LO WORD 형식의 8 BYTE 단위의 데이터 읽기 ( LO, HI 데이터 순 ),

3lm, 3Lm – HI WORD x 10000 + LO WORD 형식의 8 BYTE 단위의 데이터 읽기 ( HI, LO 데이터 순 ),

3s – 16 BYTE BCD ASCII 데이터 읽기,

3F – FLOAT 단위의 데이터 읽기 ( LO, HI 데이터 순 ),

3F2 – FLOAT 단위의 데이터 읽기 ( LO, HI 데이터 순 2 ),

3f – FLOAT 단위의 데이터 읽기 ( HI, LO 데이터 순 ),

3f2 – FLOAT 단위의 데이터 읽기 ( HI, LO 데이터 순 2 ),

1X, 2X – 비트 단위의 데이터 읽기 ( 1xxxx, 2xxxx Modbus 번지 )

1XB, 2XB – 비트 단위의 데이터 읽기, 비트 단위 읽기 개수 ( 1xxxx, 2xxxx Modbus 번지 )

3B – BYTE 단위의 데이터 읽기.

TRANS – Transfix의 Historical Records를 읽기.

3) 읽을 시작주소 : 읽을 시작번지. (modbus 주소 –1 )

                        읽을 종류가 TRANS 일 때는 읽을 Record index.

4) 메모리 저장 위치 : 읽어온 상태 값을 저장할 버퍼위치.

5) 읽는 크기: 읽을 크기.

3 – WORD 단위 개수,

3D, 3d, 3M, 3m, 3F, 3F2, 3f, 3f2 – 2 WORD 단위 개수,

3LD, 3ld, 3LM, 3lm – 4 WORD 단위 개수,

3s – 8 WORD 단위 개수,

1X, 2X – WORD 단위 개수,

1XB, 2XB – 비트 단위의 읽기 개수, ( 1 ~ 15 = 1 WORD, 16 ~ 31 = 2 WORD, …)

3B – BYTE 단위 개수.

TRANS - 226바이트로 고정.

 

<표 1>은 Transfix 장비의 Historical Records를 읽은 값의 저장 위치와 내용이다. TRANS 읽을 종류로 읽은 값은 WORD/DWORD/FLOAT 메모리의 같은 번지에 같은 값(메모리 형식에 따라 값이 달라짐)을 저장한다.

 

저장위치 저장내용

범위

메모리 저장위치 + 0 Number

0 ~ 7FFFh

메모리 저장위치 + 1 Oil Source

0 ~ 2 = Oil Source A ~ C

메모리 저장위치 + 2 Year

0 ~ 9999

메모리 저장위치 + 3 Month

1 ~ 12

메모리 저장위치 + 4 Day

1 ~ 31

메모리 저장위치 + 5 Hour

0 ~ 23

메모리 저장위치 + 6 Min

0 ~ 59

메모리 저장위치 + 7 ~ 8 PGA/Host Firmware Version

16BIT(WORD) DATA

메모리 저장위치 + 9 ~ 10 Alarm Conc/ROC Status
메모리 저장위치 + 11 Alarm Output Status
메모리 저장위치 + 12 Measurement Flags
메모리 저장위치 + 13 PGA Error State
메모리 저장위치 + 14 Error Codes

32BIT(DWORD) DATA

메모리 저장위치 + 15 Measurement Duration(sec)

WORD

메모리 저장위치 + 16 Spare

0으로 고정(WORD)

메모리 저장위치 + 17 H2

Float 값,

PPM

메모리 저장위치 + 18 CO2
메모리 저장위치 + 19 CO
메모리 저장위치 + 20 C2H4
메모리 저장위치 + 21 C2H6
메모리 저장위치 + 22 CH4
메모리 저장위치 + 23 C2H2
메모리 저장위치 + 24 H2O
메모리 저장위치 + 25 O2
메모리 저장위치 + 26 TDCG
메모리 저장위치 + 27 N2
메모리 저장위치 + 28 TDG
메모리 저장위치 + 29 Oil Pressure

Float 값, kPa

메모리 저장위치 + 30 Oil Temperature

Float 값, ℃

메모리 저장위치 + 31 Ambient Temperature
메모리 저장위치 + 32 Normalization Temperature
메모리 저장위치 + 33 ~ 38 AI 1 ~ 6

Float 값, 사용자 정의 단위

메모리 저장위치 + 39 ~ 42 Spare

Float 값, 0으로 고정

메모리 저장위치 + 43 ~ 56 Reserved 1 ~ 14

Float 값

메모리 저장위치 + 57 ~ 63 Spare

Float 값

메모리 저장위치 + 64 Spare

WORD 값

<표 1> Transfix 장비의 Historical Records를 읽은 값의 저장위치와 내용

 

<그림 1> 프로토콜 옵션부의  아이콘을 클릭하면 <그림 2>의 대화상자가 나타나는데 여기서도 READ 스케쥴을 작성할 수 있다.

 

<그림 2> MODBUS 드라이버의 통신 읽기 설정 대화상자

 

<그림 2>의 , ,  버턴과 리스트 박스를 이용하여 READ 스케쥴을 작성한다.

<그림 2>의 ‘Check CRC Error’ 부분에서 읽은 패킷의 CRC 체크여부, ‘Bit Write On Val’ 영역에 비트 ON 출력 시 쓰기 값( 기본 = 65280 ), ‘Use Modbus IP Protocol’ 에서 MODBUS IP 프로토콜 사용여부, ‘Bit Write Off Val’ 영역에 비트 OFF 출력 시 쓰기 값( 기본 = 0 )을 설정할 수 있다.

 

<그림 3> MODBUS 드라이버의 통신 읽기 설정 READ 추가/편집 대화상자의 예

 

 

<그림 3>는 <그림 2>의 대화상자에서 READ 스케쥴을 추가 또는 편집할 때 나타나는 대화상자이다.

 

2. 쓰기 설정

출력은 SCAN File과 상관없이 컨트롤러의 직접 ADDRESS에 쓴다.

 

디지털 출력 설정법

디지털 출력으로 장비의 상태 값(reset 등)을 설정하거나 Relay 등을 제어할 수 있다.

 

디지털 출력 TAG 설정 시 필요한 요소는 아날로그 출력태그 설정요소와 동일하고 출력 값만 다르다.

 

 

아날로그 출력 설정법

아날로그 출력은 BYTE/WORD/DWORD/FLOAT 값을 메타에 쓰는 것을 말한다.

 

아날로그 출력 TAG 설정 시 필요한 요소

1) PORT           연결된 PORT 번호.

2) STATION      메타의 Station( ID )번호.

시리얼 통신 - 1 ~ 247,

TCP/IP – 100, 255 등.

3) Address      출력 번지. 10진수 단위의 출력번지. (Modbus 번지 – 1 )

                        읽을 종류가 TRANS 일 때는 읽을 Record index.

4) Extra1          출력하고자 하는 데이터 종류.

16 – WORD 단위의 데이터 쓰기,

16D – DWORD 단위의 데이터 쓰기 ( LO, HI 데이터 순 ),

16d – DWORD 단위의 데이터 쓰기 ( HI, LO 데이터 순 ),

16lD, 16LD – 8 BYTE 단위의 데이터 쓰기 ( LO, HI 데이터 순 ),

16ld, 16Ld – 8 BYTE 단위의 데이터 쓰기 ( HI, LO 데이터 순 ),

16M – HI WORD x 10000 + LO WORD 형식의 DWORD 데이터 쓰기 ( LO, HI 데이터 순 ),

16m – HI WORD x 10000 + LO WORD 형식의 DWORD 데이터 쓰기 ( HI, LO 데이터 순 ),

16lM, 16LM – HI WORD x 10000 + LO WORD 형식의 8 BYTE 단위의 데이터 쓰기 ( LO, HI 데이터 순 ),

16lm, 16Lm – HI WORD x 10000 + LO WORD 형식의 8 BYTE 단위의 데이터 쓰기 ( HI, LO 데이터 순 ),

16s – 16 BYTE BCD ASCII 데이터 쓰기,

16F – FLOAT 단위의 데이터 쓰기 ( LO, HI 데이터 순 ),

16F2 – FLOAT 단위의 데이터 쓰기 ( LO, HI 데이터 순 2 ),

16f – FLOAT 단위의 데이터 쓰기 ( HI, LO 데이터 순 ),

16f2 – FLOAT 단위의 데이터 쓰기 ( HI, LO 데이터 순 2 ),

16B – BYTE 단위의 데이터 쓰기.

TRANS – Transfix의 Historical Records를 읽기.

5) Extra2          읽을 종류가 TRANS 일 때 Historical Records 읽은 값을 저장하는 메모리 시작번지(<표 1> 참조).

기타 - 사용안함.

 

 

예1) Station : 1  Address : 0100  Extra1 : 16, EXTRA2 : 빈칸으로 설정하고 아날로그 출력을 하면 1번 Station MODBUS 장비의 100 번지 ( 101 Modbus 번지 ) 값을 설정한 값으로 변경할 수 있다.

 

예2) Station : 1  Address : 5000  Extra1 : 16d, EXTRA2 : 빈칸으로 설정하고 아날로그 출력을 하면 1번 Station MODBUS 장비의 5000 번지 ( 5001 Modbus 번지 ) 값을 설정한 값으로 변경할 수 있다.

 

예3) Station : 1  Address : 2  Extra1 : TRANS, EXTRA2 : 200 으로 설정하고 아날로그 출력을 하면 1번 Station Transfix 장비의 2번 Historical Record 값을 읽어서 통신 프로그램의 200 번 WORD/DWORD/FLOAT 메모리 번지부터 저장한다.